package com.maikobi.maikobi.constant;


/**
 * Redis 缓存相关 Key 常量类
 * 专门管理缓存中所有 Redis 键的前缀，统一维护，防止混淆。
 *
 * @author: Maiko7
 * @create: 2025-07-15 8:48
 */
public interface RedisKeyConstants {

    /**
     * 用户信息缓存 key 前缀，后面拼接用户 ID，例如：user:info:123
     */
    String USER_INFO_CACHE_KEY = "user:info:";


    /**
     * 定义缓存中表示空值的条目存活时间（TTL，Time To Live）常量
     * 该常量用于解决缓存穿透问题，通过为缓存中的空值设置一个较短的过期时间，
     * 避免因缓存空值而导致的内存浪费，同时防止因频繁查询空值而对数据库造成不必要的压力
     */
    public static final Long CACHE_NULL_TTL = 2L;


    /**
     * 用户缓存重建锁（防止缓存击穿）
     */
    String USER_CACHE_REBUILD_LOCK = "lock:user:cache:";

    // 以后还可以继续添加，例如：
    // String POST_INFO_CACHE_KEY = "post:info:";
    // String TEAM_INFO_CACHE_KEY = "team:info:";
}

